home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
tool
/
esc
/
esc.c
next >
Wrap
Text File
|
1995-02-09
|
2KB
|
91 lines
/*
tab=4,r.m=80
=======================================================================
esc.c program Y.Gotoh (1995)
=======================================================================
*/
/* 外部ファイル読み込み */
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
/* 関数定義 */
void help(void);
/* メイン */
int main(int argc , char *argv[])
{
int i,num;
char *str;
printf("<<esc.exe>> program : Y.Gotoh\n\n");
if(argc==1) { /* オプション無しの時はヘルプ */
help();
}
for( i=1 ; i<argc-1 ; i++ ); /* オプションの回数繰り返し */
{
printf("%d:%s\n",i,argv[i]); /* オプションを表示 */
if( *argv[i] == '/' || *argv[i] == '-' )
{
tolower( *(argv[i]+1) );
switch( *(argv[i]+1) )
{
case 'h': /* ヘルプ */
help();
case 'f': /* ファンクションキー定義 */
if(strlen(argv[i])<4) { /* 定義文が短すぎ */
printf("define error!\n");
break;
}
num=atoi(argv[i]+2); /* 登録番号を取得 */
if(num>10) { /* 10以上には登録不可 */
printf("define error!\n");
break;
}
else if(num==10) str=argv[i]+4; /* 10の時は取得文字 */
/* 列をずらす */
else str=argv[i]+3;
printf("\x1b[0;%d;\"%s\"p",num,str); /* 定義 */
printf("defined PF%d=\"%s\"\n",num,str); /* 報告 */
break;
case 'c':
if(strlen(argv[i])<3) num=7; /* 番号無しの時は白 */
else num=atoi(argv[i]+2);
printf("\x1b[%dm",num+30); /* 色変更 */
break;
case 'e':
str=argv[i]+2; /* 文字列取得 */
printf("\x1b%s",str); /* 実行 */
break;
default:
printf("\"%s\"の意味が分かんないの (;_;)\n",argv[i]+1);
}
}
else printf("オプション以外の物があるぞ!!\n");
}
}
void help()
{
printf(
" esc (/,-)[オプション]\n"
"オプション 一覧\n"
" h ・・・・・ ヘルプ\n"
" f[num][string] ・・・・・ [num]番のファンクションに[string]を定義\n"
" c[col] ・・・・・ テキストカラーを[col]番にする\n"
" e[string] ・・・・・ [string]を<esc>に続いて出力\n"
);
exit(0);
}